package br.com.autoleal.ocorrencia.service;

import java.io.Serializable;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import br.com.autoleal.ocorrencia.Ocorrencia;

@Stateless
public class OcorrenciaServiceBean implements Serializable {

	private static final long serialVersionUID = 1660080561447868349L;

	@PersistenceContext
	private EntityManager entityManager;

	public void incluirOcorrencia(Ocorrencia ocorrencia) {
		try {
			entityManager.persist(ocorrencia);
		} catch (Exception e) {

		}
	}

	public void alterarOcorrencia(Ocorrencia ocorrencia) {
		entityManager.merge(ocorrencia);
	}

	public String buscarCodigoMax() {
		Query query = entityManager.createNamedQuery("Ocorrencia.buscarCodigoMax");
		try {
			return String.valueOf(Integer.valueOf(query.getSingleResult().toString().replaceAll("0", "")) + 1);
		} catch (Exception e) {
			return "1";
		}
	}

	public List<Ocorrencia> buscarOcorrenciaNaoFechadas() {
		Query query = entityManager.createNamedQuery("Ocorrencia.buscarOcorrenciaNaoFechadas");
		try {
			return query.getResultList();
		} catch (NoResultException e) {
			return null;
		}
	}

	public List<Ocorrencia> buscarOcorrenciasPorPlaca(String consulta) {
		Query query = entityManager.createNamedQuery("Ocorrencia.buscarOcorrenciasPorPlaca");
		query.setParameter("placa", consulta.toUpperCase());
		try {
			return query.getResultList();
		} catch (NoResultException e) {
			return null;
		}
	}
	
}
